Skip to content

fix(onboarding,receiver): 오늘 머지 조합이 깬 develop 을 복구한다 (closes 1199, 1201) [base: develop] - #1198

Closed
OnlyReadOneBook wants to merge 2 commits into
developfrom
fix/onboarding-res-refs
Closed

OnlyReadOneBook wants to merge 2 commits into
developfrom
fix/onboarding-res-refs

Conversation

@OnlyReadOneBook

@OnlyReadOneBook OnlyReadOneBook commented Aug 26, 2026 •

Copy link
Copy Markdown
Collaborator

develop 이 컴파일도, 스크린샷 검증도 통과하지 못하는 상태다. 원인이 둘인데 성격이 같다 — 오늘 머지된 PR 들이 서로 파일을 하나도 겹치지 않으면서 조합에서만 깨졌다. merge-tree 로도 clean, 각자 CI 도 green 이었다.

1. 컴파일 — 리소스 개명 ↔ 옛 이름 참조

e: OnboardingTermsRowWidthTest.kt:72:64 Unresolved reference 'terms_agree_all'
e: OnboardingTermsRowWidthTest.kt:73:66 Unresolved reference 'terms_view_detail'
> Task :feature:onboarding:presentation:compileDebugUnitTestKotlin FAILED

#1187 이 onboarding 리소스를 onboarding_ 프리픽스로 개명했고, #1162 는 옛 이름을 참조하는 테스트를 새로 추가했다. 참조 두 줄을 새 이름으로 옮긴다 — 테스트가 무엇을 보는지는 그대로다.

이 실패는 develop 머지 직후 워밍 run 32950531237 이 이미 잡았다. build-cache-warm.yml 은 게이트가 아니라 실패가 아무 데도 도달하지 않았을 뿐이다.

2. 스크린샷 — 타이포그래피 변경 ↔ 그 이전 baseline

onboardingTermsScreenInitialCompactScreenshot                 ImageComparisonAssertionError
deliveryVerificationCompleteScreenLargeFontScreenshot         ImageComparisonAssertionError
identityVerificationEmailScreenSentLargeFontScreenshot        ImageComparisonAssertionError

#1174 가 AfternoteTypography.kt 에 lineBreak·ko 로케일을 넣어 한글이 어절 단위로 끊기게 바뀌었다(#1142). #1162·#1164 의 baseline 은 그 이전 렌더라 어긋난다. CI 와 같은 컨테이너(amd64·ubuntu 24.04·Noto CJK)에서 세 장을 다시 떴다.

약관 화면은 개선이 눈에 보인다 — 「E-mail 및 SMS 광고성 정보 수신동의 (선택)」이 (선 / 택) 으로 쪼개지던 것이 이제 (선택) 통째로 내려간다. #1142 가 고치려던 그 증상이다.

검증

  • ./gradlew compileDebugUnitTestKotlin compileDebugAndroidTestKotlin — BUILD SUCCESSFUL. 전 모듈 26개 태스크 + :app:compileDebugAndroidTestKotlin. 수정 전 같은 명령이 위 오류로 BUILD FAILED 였다.
  • 컨테이너 validateDebugScreenshotTest(onboarding·receiver) — BUILD SUCCESSFUL. CI green 사전 확정.
  • onboarding presentation 의 R.string.* 참조를 strings.xml 정의와 전수 대조 — 정의에 없는 참조 0건.

리뷰어에게

이 자리는 다시 열린다. resourcePrefix 도입(#1071·#1185)이 모듈별로 진행 중이고, 타이포그래피·공용 컴포넌트 변경도 계속 있다. 정의를 바꾸는 PR 과 그 이름을 새로 참조하는 PR 이 같은 배치에 있으면 파일 충돌 없이 조합에서만 깨진다 — GitHub 의 MERGEABLE 도 merge-tree 도 이 축을 보지 못한다.

develop push 에는 검증 워크플로가 없어서(pr-validation.yml 은 pull_request 전용) 이 red 가 자동으로는 어디에도 뜨지 않는다. 열린 PR 들이 실패를 물려받고서야 간접적으로 드러나고, 그때조차 «내 PR 탓인지 develop 탓인지» 를 사람이 로그를 갈라 판정해야 한다(#1176 에서 실제로 그렇게 갈랐다). 별도 이슈로 다룰 만하다.


이 PR 이 두 갈래를 함께 닫는다. 같은 시각 다른 세션에서 #1199(컴파일)·#1201(baseline)로 나뉘어 진단된 것과 원인·범위가 같고, 이쪽은 두 축 모두 수정과 검증이 끝나 있다.

Closes #1199
Closes #1201

#1187 이 onboarding 리소스를 `onboarding_` 프리픽스로 통일하면서 `terms_agree_all`·
`terms_view_detail` 이 개명됐는데, 같은 날 들어간 #1162 가 그 옛 이름을 참조하는 테스트를
새로 추가했다. 두 PR 은 건드리는 파일이 겹치지 않아 merge-tree 도 clean, 각자 CI 도
green 이었고 — 한쪽이 정의를 바꾸고 한쪽이 참조를 더해서 develop 조합에서만 깨졌다.

참조 두 줄을 새 이름으로 옮긴다. 테스트가 무엇을 보는지는 그대로다.
@github-actions

Copy link
Copy Markdown
Contributor

🚧 리뷰 적체 가드 — 이 PR 을 닫습니다

아무도 리뷰하지 않은 PR 이 4건 남아 있습니다.

PR 열린 날 경과 제목
#1154 2026-08-25 1일 test(mindrecord): screenshotTest 소스셋을 세우고 추억 공간 baseline 을 넣는다 (#1131)
#1152 2026-08-25 1일 fix(mindrecord): 수신인 조회 실패를 «등록 없음» 과 구분해 알린다 (#1019)
#1061 2026-08-24 2일 refactor(receiver): 수신자 홈의 afternote 리소스 차용 해소 — 아이콘 core:ui 승격 (#926)
#958 2026-08-23 3일 fix(mindrecord): 미디어 첨부를 업로드 뒤 파일명으로 넣는다 — 로컬 content:// URI 노출 제거

이 저장소는 아무도 응답하지 않은 PR 이 1건이라도 남아 있으면 새 PR 을 열 수 없습니다 (#1136).

각 PR 에 필요한 리뷰는 한 건입니다 — 누구든 먼저 판정을 내면 그 PR 은 모두의 목록에서 빠집니다. 승인 뒤에 올라온 변경을 다시 봐 줄 의무는 없지만, 변경요청은 작성자가 반영한 시점에 다시 리뷰어의 몫이 됩니다.

되살리는 법

위 리뷰를 끝낸 뒤 이 PR 을 다시 여세요. 브랜치는 지워지지 않았고 커밋도 그대로입니다.

gh pr reopen 1198

리뷰보다 이 PR 이 급하면 review-debt-exempt 라벨을 붙이고 다시 열면 통과합니다.

@github-actions github-actions Bot closed this Aug 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

❌ Screenshot test fail — baseline 과 CI rendered PNG 차이.

📦 Artifact: https://github.com/Afternote/Afternote-FE/actions/runs/32951187023 (페이지 하단 Artifacts → screenshot-test-results)

🔍 확인 위치 (artifact zip 내부):

  • diff PNG: preview/debug/diffs/...
  • rendered PNG: preview/debug/rendered/... (CI 환경에서 새로 그린 결과)
  • baseline PNG: repo <module>/src/screenshotTestDebug/reference/... (:core:ui · :feature:home:presentation · :feature:receiver:presentation · :feature:onboarding:presentation · :feature:afternote:presentation)

📝 조치 가이드:

  • 의도된 시각 변경 → docker build -t afternote-screenshot:latest -f Dockerfile.screenshot . 후 docker run --rm -v "$PWD":/workspace -w /workspace afternote-screenshot:latest ./gradlew :<module>:updateScreenshotTest 로 baseline 갱신 + commit/push
  • diff 가 anti-aliasing/font 차이로 보이면 docker 환경 변경 여부 (Dockerfile.screenshot) 점검

CI ↔ 로컬 환경 차이는 본 워크플로의 container 단계가 root fix 한다 (README 의 "Compose Preview Screenshot Testing (docker baseline)" 섹션 참조).

#1174 가 `AfternoteTypography.kt` 에 lineBreak·ko 로케일을 넣어 한글이 어절 단위로
끊기게 바뀌었다. 같은 날 들어간 #1162·#1164 의 baseline 은 그 이전 렌더라, develop
조합에서 `validateDebugScreenshotTest` 가 세 화면에서 ImageComparisonAssertionError 를
낸다 — 약관 화면 Compact, 수신자 전달완료·이메일인증 fontScale 1.5.

CI 와 같은 컨테이너(amd64·ubuntu 24.04·Noto CJK)에서 다시 떴다. 약관 화면은 「(선택)」이
「(선」/「택)」으로 쪼개지던 것이 통째로 내려간다 — #1142 가 고치려던 그 증상이다.
@OnlyReadOneBook OnlyReadOneBook changed the title fix(onboarding): 리소스 프리픽스 통일 뒤 남은 테스트 참조를 잇는다 [base: develop] fix(onboarding,receiver): 오늘 머지 조합이 깬 develop 을 복구한다 [base: develop] Aug 26, 2026
@OnlyReadOneBook OnlyReadOneBook changed the title fix(onboarding,receiver): 오늘 머지 조합이 깬 develop 을 복구한다 [base: develop] fix(onboarding,receiver): 오늘 머지 조합이 깬 develop 을 복구한다 (closes 1199, 1201) [base: develop] Aug 26, 2026
@OnlyReadOneBook

Copy link
Copy Markdown
Collaborator Author

develop 이 컴파일도 스크린샷 검증도 통과하지 못하는 상태라 review-debt-exempt 로 먼저 엽니다 — 열린 PR 전부가 이 실패를 물려받고 있어서, 밀린 리뷰 4건조차 지금 상태로는 «그 PR 탓인지 develop 탓인지» 를 가릴 수 없습니다.

우회한 만큼 갚겠습니다. 이 PR 이 머지되어 develop 이 green 이 되는 대로 #1154 · #1152 · #1061 · #958 을 이어서 봅니다.

@OnlyReadOneBook

Copy link
Copy Markdown
Collaborator Author

같은 사고를 다른 세션에서 독립적으로 추적하다 이 PR 과 중복되는 복구를 만들었습니다(#1200 · #1204). 이 PR 이 먼저이고 범위도 더 넓어 제 쪽을 닫았습니다.

닫기 전에 대조해 두었는데, 참고가 될 것 같아 남깁니다 — baseline 3장이 바이트 단위로 동일합니다.

동일  onboardingTermsScreenInitialCompactScreenshot_c2abd7e6_0.png
동일  deliveryVerificationCompleteScreenLargeFontScreenshot_39fcf3fa_0.png
동일  identityVerificationEmailScreenSentLargeFontScreenshot_39fcf3fa_0.png

서로 다른 워크트리·별도 gradle 캐시 볼륨에서 각자 docker(linux/amd64) 사이클을 돌렸는데 결과가 일치했습니다. 렌더가 환경에 흔들리지 않았다는 뜻이라, 이 baseline 은 그대로 신뢰해도 됩니다.

추가로 artifact 의 rendered 와 대조해 문구는 동일하고 줄바꿈 위치만 다름을 확인했습니다. 즉 현재 baseline 이 #1142 가 고치려던 결함(한글 어절 중간 줄바꿈)을 정답으로 굳혀 두고 있던 것이고, 이 PR 의 갱신 방향이 맞습니다.

화면 갱신 전 갱신 후
onboarding 약관 … 수신동의 (선 / 택) … 수신동의 / (선택)
receiver 열람 신청 완료 … 있도록 안내 / 드리겠습니다. … 있도록 / 안내드리겠습니다.

🤖 Addressed by Claude Code

@OnlyReadOneBook

Copy link
Copy Markdown
Collaborator Author

#1203 이 같은 내용(참조 수정 + baseline 3장)으로 먼저 머지돼 develop 이 복구됐습니다. git diff origin/develop origin/fix/onboarding-res-refs 가 비어 있어 이 PR 은 완전 중복입니다 — 닫습니다.

같은 사고를 두 세션이 독립적으로 진단하고 같은 결론(원인 두 축·수정 범위·baseline 3장)에 도달했습니다. 재발 방지는 #1202 로 이어집니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant